home *** CD-ROM | disk | FTP | other *** search
/ Aminet 39 / Aminet 39 (2000)(Schatztruhe)[!][Oct 2000].iso / Aminet / biz / swood / FW_AllInOne.lha / Makros / AGImport next >
Text File  |  1998-01-25  |  17KB  |  707 lines

  1. /* Optimized with RexxOpt 1.7 */
  2.  
  3. Parse ARG FW
  4. if ~show('L',"rexxreqtools.library") then
  5. if ~addlib('rexxreqtools.library',0,-30,0) then;do
  6. ShowMessage 1 1 '"Fehler...." "Benötige Libs:rexxreqtools.library" " A B B R U C H ! !" "Okay" "" ""'
  7. exit
  8. end
  9. IF ~show('L','tritonrexx.library') then
  10. IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN;DO
  11. ShowMessage 2 1 '"Fehler...." "Benötige Libs:tritonrexx.library" "" "Abbruch" "" ""'
  12. exit
  13. END
  14. R='0A'X
  15. SIGNAL ON SYNTAX
  16. If FW='' then;do
  17. Address='FinalW'
  18. Options results
  19. STATUS PORTNAME
  20. FW=result
  21. End
  22. address(FW)
  23. CtrlUp
  24. ShiftUp
  25. AltUp
  26. address "REXX"
  27. If open('Hilfe',"S:FW_Paket.prefs","R") then;do
  28. HilfeVerz=readln('Hilfe')
  29. Call Close('Hilfe')
  30. End
  31. else HilfeVerz=''
  32. If ~exists("s:FW_AGImport.prefs") then;do
  33. USchrift="Courier_Bold";USize=14
  34. TSchrift="Courier";TSize=10
  35. Schablone="(siehe %K, Seite %S)"
  36. speed=1
  37. Umbruch=0
  38. node=0
  39. end
  40. else;do
  41. Call Open("prefs","S:FW_AGImport.prefs","R")
  42. USchrift=readln("prefs")
  43. USize=readln("prefs")
  44. TSchrift=readln("prefs")
  45. TSize=readln("prefs")
  46. Schablone=readln("prefs")
  47. speed=readln("prefs")
  48. Umbruch=readln("prefs")
  49. node=readln("prefs")
  50. Call Close("prefs")
  51. end
  52. speed.0=2
  53. speed.1="normal"
  54. speed.2="schnell"
  55. pos=max(index(USchrift,':'),lastpos('/',USchrift))
  56. If pos~=0 then fond1=Delstr(USchrift,1,pos)
  57. else fond1=USchrift
  58. pos=max(index(TSchrift,':'),lastpos('/',TSchrift))
  59. If pos~=0 then fond2=Delstr(TSchrift,1,pos)
  60. else fond2=TSchrift
  61. If Umbruch=0 then UB="nein"
  62. else UB="ja"
  63. If node=0 then NO="nein"
  64. else NO="ja"
  65. o1="Überschrift: "||fond1||", Größe: "||USize
  66. o2="Mengentext: "||fond2||", Größe: "||TSize
  67. o3="Ausgabe: "||Schablone||" Geschw.: "||speed.speed
  68. o4="Seitenumbruch: "||UB||", @node: "||NO
  69. oldspeed=speed
  70. oldUmbruch=Umbruch
  71. oldnode=node
  72. oldUSchrift=USchrift;oldTSchrift=TSchrift
  73. oldfond1=fond1;oldfond2=fond2
  74. apptags='TRCA_Name     AG2FW',
  75. 'TRCA_LongName "AmigaGuideKonverter"',
  76. 'TRCA_Info     "für FinalWriter"',
  77. 'TRCA_Version  "1.0 registered"',
  78. 'TRCA_Release  "1"',
  79. 'TRCA_Date     "09.01.98"',
  80. 'TAG_END'
  81. windowtags=WindowID(1),
  82. WindowPosition('TRWP_CENTERDISPLAY'),
  83. WindowFlags('TRWF_NOMINTEXTWIDTH'),
  84. PubScreenName('FinalWriterPubScreen'),
  85. WindowTitle("AmigaGuideImport"),
  86. BeginMenu('Projekt'),
  87. MenuItem('Voreinsteller...',102),
  88. 'ItemBarlabel',
  89. MenuItem('Q_Verlassen',104),
  90. BeginMenu('?'),
  91. MenuItem('?_Info',101),
  92. MenuItem('H_Hilfe',103),
  93. 'HorizGroupAC SpaceS',
  94. 'VertGroupAC SpaceS',
  95. 'HorizSeparator',
  96. 'SpaceS',
  97. TextH(o1) 'TRAT_ID 5',
  98. TextH(o2) 'TRAT_ID 6',
  99. TextH(o3) 'TRAT_ID 7',
  100. TextH(o4) 'TRAT_ID 8',
  101. 'SpaceS',
  102. 'HorizSeparator',
  103. 'Space',
  104. Progress(100,0,7) 'TRAT_Flags TRCY_RIGHTLABELS',
  105. 'SpaceS',
  106. 'HorizGroupSA',
  107. TextN("0"),
  108. 'SpaceB Space SpaceB',
  109. TextN("25"),
  110. 'SpaceB Space SpaceB',
  111. TextN("50"),
  112. 'SpaceB Space SpaceB',
  113. TextN("75"),
  114. 'SpaceB Space SpaceB',
  115. TextN("100"),
  116. 'EndGroup',
  117. 'SpaceS',
  118. 'HorizgroupEC',
  119. Button('_Anwenden',1),
  120. 'SpaceS',
  121. Button('_Verweise',3),
  122. 'SpaceS',
  123. Button('Ab_bruch',2),
  124. 'EndGroup SpaceS',
  125. 'EndGroup SpaceS',
  126. 'EndGroup SpaceS',
  127. 'EndProject'
  128. app=TR_CREATEAPP('TRCA_Name AGImport')
  129. IF app ~='00000000'x THEN;DO
  130. window1=TR_OPENPROJECT(app,windowtags)
  131. IF window1 ~='00000000'x THEN;DO
  132. ende=0
  133. DO WHILE ~ende
  134. CALL TR_WAIT(app,'')
  135. DO WHILE TR_HANDLEMSG(app,'event')
  136. IF event.trm_class='TRMS_CLOSEWINDOW' THEN ende=1
  137. IF event.trm_class='TRMS_ACTION' THEN;DO
  138. SELECT
  139. WHEN event.trm_id=1 THEN Call program
  140. WHEN event.trm_id=3 THEN Call Verweisen
  141. WHEN event.trm_id=2 THEN ende=1
  142. WHEN event.trm_id=101 THEN Call rtezrequest("Aus dem Makro-Paket:"||R||R||"AmigaGuideImport V1.0 für FW"||R||"© 1998 Heiko Schröder","Danke für Ihre Registrierung.","Info","rt_pubscrname=FinalWriterPubScreen")
  143. WHEN event.trm_id=102 THEN Call Voreinstellung
  144. WHEN event.trm_id=103 THEN address command "run Multiview PUBSCREEN=FinalWriterPubScreen "||d2c(34)||HilfeVerz||"AGImport.guide"||d2c(34)
  145. WHEN event.trm_id=104 THEN ende=1
  146. OTHERWISE NOP
  147. END
  148. END
  149. END
  150. END
  151. CALL TR_CLOSEPROJECT(window1)
  152. END
  153. CALL TR_DELETEAPP(app)
  154. END
  155. ELSE
  156. CALL quit('Kann das Fenster nicht öffnen',10)
  157. Exit
  158. Program:
  159. links=0
  160. address "REXX"
  161. verz=GetClip(AGImportVerz)
  162. If verz~="" then;do
  163. pos=max(index(verz,':'),lastpos('/',verz))
  164. IF (pos ~=0) then verz=LEFT(verz,pos)
  165. END
  166. MerkeSchablone=Schablone
  167. guide=rtfilerequest(verz,,"Wähle das Guide aus...",,"rt_pubscrname=FinalWriterPubScreen rtfi_matchpat=#?")
  168. IF guide="" then return
  169. SetClip(AGImportVerz,Guide)
  170. call Time('R')
  171. IF ~OPEN('Guide',guide,"R") THEN Return
  172. DLaenge=Seek('Guide',0,'E')
  173. temp=Seek('Guide',0,'B')
  174. address command "search >ram:nodes search @node nonum "||d2c(34)||guide||d2c(34)
  175. Call Open('nodes',"ram:nodes","R")
  176. xy=0
  177. Do While EOF("nodes")~=1
  178. line=Readln("nodes")
  179. line=Delstr(line,1,6)
  180. xy=xy+1
  181. pos4=Lastpos(d2c(34),line)
  182. Select
  183. When pos4=0 then;do
  184. Name.xy=line;Ueberschrift.xy=line
  185. End
  186. When pos4~=0 then;do
  187. pos3=LastPos(d2c(34),line,pos4-1)
  188. Ueberschrift.xy=Right(line,Length(line)-pos3+1)
  189. If pos3=1 then;do
  190. Name.xy=Ueberschrift.xy
  191. End
  192. Else;do
  193. pos2=LastPos(d2c(34),line,pos3-1)
  194. If pos2=0 then;do
  195. Name.xy=Delstr(line,pos3-1)
  196. End
  197. If pos2~=0 then;do
  198. pos1=LastPos(d2c(34),line,pos2-1)
  199. line=Left(line,pos2)
  200. Name.xy=Delstr(line,1,pos1-1)
  201. End
  202. End
  203. End
  204. Otherwise NOP
  205. End
  206. name.xy=Strip(name.xy,'B',d2c(34))
  207. name.xy=Strip(name.xy,'B',d2c(9))
  208. name.xy=Strip(name.xy,'B',d2c(160))
  209. name.xy=Strip(name.xy)
  210. Ueberschrift.xy=Strip(Ueberschrift.xy,'B',d2c(34))
  211. Ueberschrift.xy=Strip(Ueberschrift.xy,'B',d2c(9))
  212. Ueberschrift.xy=Strip(Ueberschrift.xy,'B',d2c(160))
  213. Ueberschrift.xy=Strip(Ueberschrift.xy)
  214. If Ueberschrift.xy="" then Ueberschrift.xy=name.xy
  215. End
  216. name.0=xy;Ueberschrift.0=xy
  217. Call Close("nodes")
  218. address command "delete ram:nodes QUIET"
  219. address(FW)
  220. RedrawOff
  221. Index=0
  222. xy=0
  223. TextTool
  224. Font TSchrift
  225. FontSize TSize
  226. SectionSetup FirstPage 1 PageNumFormat Normal Footer 1 MPageOpt AllPages
  227. line=ReadLn('Guide')
  228. IF EOF('Guide') THEN leave
  229. If pos("@DATABASE",upper(line))=0 then;do
  230. ShowMessage 1 1 '"Diese Datei ist kein AmigaGuide bzw."    "nicht AmigaGuide konform." ""   "Zurück" "" ""'
  231. Call Close('Guide')
  232. Return
  233. End
  234. If speed=2 then Call AnfView
  235. Do While 1
  236. Do While 1
  237. line=ReadLn('Guide')
  238. IF EOF('Guide') THEN leave
  239. Stand=Seek('Guide',0,'C')
  240. Select
  241. When pos("@AUTHOR",upper(line))~=0 then;do
  242. Type "Autor: "||Delstr(line,1,8);NewParagraph
  243. End
  244. when pos("@(C)",upper(line))~=0 then;do
  245. Type "Copyright: "||Delstr(line,1,5);NewParagraph
  246. End
  247. when pos("@$VER:",upper(line))~=0 then;do
  248. Type "Version: "||Delstr(line,1,7);NewParagraph
  249. End
  250. when pos("@INDEX",upper(line))~=0 then Index=1
  251. when pos("@NODE",upper(line))~=0 then leave
  252. otherwise NOP
  253. End
  254. End
  255. pos=Pos('@NODE',upper(line))
  256. If pos~=0 then
  257. ok=0
  258. Do i=1 to name.0
  259. If (pos(name.i,line)~=0&pos(Ueberschrift.i,line)~=0) then;do
  260. If node=1 then;do
  261. FontSize USize;Font USchrift
  262. Type Ueberschrift.i
  263. End
  264. If MerkeSchablone~="" then;do
  265. If i<10 then Type "ð0"||i
  266. else Type "ð"||i
  267. End
  268. If node=1 then;do
  269. FontSize TSize;Font TSchrift
  270. NewParagraph;NewParagraph
  271. end
  272. ok=1
  273. Leave
  274. End
  275. if ok=1 then leave
  276. End
  277. Test=''
  278. Do ForEver
  279. Stand=Seek('Guide',0,'C')
  280. test=ReadLn('Guide')
  281. If eof('Guide') then leave
  282. if (pos('@TOC',upper(test))~=0|pos('@NEXT',upper(test))~=0|pos('@PREV',upper(test))~=0) then test=''
  283. If test~='' then;do
  284. s=Seek('Guide',Stand,'B')
  285. Leave
  286. End
  287. End
  288. Do While 1
  289. Anz=0
  290. Stand=Seek('Guide',0,'C')
  291. line=ReadLn('Guide')
  292. IF EOF('Guide') THEN leave
  293. If pos("@ENDNODE",upper(line))~=0 then;do
  294. If Umbruch=1 then InsertPageBreak
  295. Else;do
  296. NewParagraph;NewParagraph
  297. End
  298. Leave
  299. End
  300. If Pos("@TITLE ",upper(line))~=0 Then;do
  301. line=Strip(upper(line),'L',"@TITLE ")
  302. line=Strip(line,'B',d2c(34))
  303. FontSize USize;Font USchrift
  304. Type line;line=""
  305. FontSize TSize;Font TSchrift
  306. End
  307. Do While 1
  308. pos1=pos('@{',line)
  309. if pos1~=0 then;do
  310. pos2=pos('}',line,pos1)
  311. If pos2=0 then;do
  312. ShowMessage 1 1 '"Fehlerhafter AmigaGuide-Befehl!" "Dokument ist deshalb an dieser Stelle nicht ganz korrekt." "" "Klick" "" ""'
  313. leave
  314. end
  315. Kom=line
  316. Kom=Left(Kom,pos2)
  317. If pos1>1 then;do
  318. Kom=Delstr(Kom,1,pos1-1)
  319. Anz=Anz+1;line.Anz=Delstr(line,pos1)
  320. End
  321. Anz=Anz+1;line.Anz=Kom
  322. line=Delstr(line,1,pos2)
  323. End
  324. Else Break
  325. End
  326. Do i=1 to Anz
  327. Select
  328. When (upper(line.i)="@{FG SHINE}"|upper(line.i)="@{APEN}"|upper(line.i)="@{BPEN}") Then
  329. FontColor Rot
  330. When (upper(line.i)="@{FG FILL}"|upper(line.i)="@{BG FILL}")~=0 Then
  331. FontColor Blau
  332. When (upper(line.i)="@{FG TEXT}"|upper(line.i)="@{BG BACK}"|upper(line.i)="@{PARD}") Then
  333. FontColor Schwarz
  334. When (upper(line.i)="@{UB}"|upper(line.i)="@{UI}"|upper(line.i)="@{UU}"|upper(line.i)="@{BODY}"|upper(line.i)="@{PLAIN}") Then
  335. Style Normal
  336. When upper(line.i)="@{JLEFT}" Then
  337. Justify Left
  338. When upper(line.i)="@{JRIGHT}" Then
  339. Justify Right
  340. When upper(line.i)="@{AMIGAGUIDE}" Then
  341. Type "AMIGAGUIDE®"
  342. When (upper(line.i)="@{LINE}"|upper(line.i)="@{PAR}") Then
  343. NewParagraph
  344. When (upper(line.i)="@{B}"|pos("SHADOW",upper(line.i))~=0|pos("HIGHLIGHT",upper(line.i))~=0) Then
  345. Style Bold
  346. When upper(line.i)="@{I}" Then
  347. Style Italic
  348. When upper(line.i)="@{U}" Then
  349. Style UnderLine
  350. When pos(d2c(34)||" LINK ",upper(line.i))~=0 Then;do
  351. pos1=Pos(d2c(34),line.i)
  352. pos2=Pos(d2c(34),line.i,pos1+1)
  353. temp=Delstr(line.i,pos2)
  354. temp=Delstr(temp,1,pos1)
  355. Type temp
  356. pos1=Pos(d2c(34),line.i,pos2+1)
  357. If pos1=0 then;do
  358. pos1=Pos("LINK",upper(line.i))+4
  359. pos2=Pos("}",line.i,pos1+1)
  360. End
  361. else pos2=Pos(d2c(34),line.i,pos1+1)
  362. temp=Delstr(line.i,pos2)
  363. temp=Delstr(temp,1,pos1)
  364. ok=0
  365. Do j=1 to name.0
  366. temp1=strip(name.j,'L',"@node")
  367. temp1=strip(temp1,'L'," ")
  368. temp1=strip(temp1,'B',d2c(34))
  369. If pos(temp1,temp)~=0 then;do
  370. Text="";MerkeSchablone=Schablone
  371. Do ForEver
  372. a=pos("%",Schablone)
  373. If a=0 then;do
  374. Text=Text||Schablone
  375. Leave
  376. End
  377. Text=Text||Left(Schablone,a-1)
  378. Schablone=Delstr(Schablone,1,a)
  379. next=Left(Schablone,1)
  380. Schablone=Delstr(Schablone,1,1)
  381. Select
  382. When upper(next)="K" then Text=Text||Ueberschrift.j
  383. When upper(next)="S" then;do
  384. If j<10 then Text=Text||"¤0"||j
  385. else Text=Text||"¤"||j
  386. links=links+1
  387. End
  388. Otherwise nop
  389. End
  390. End
  391. Type Text
  392. Schablone=MerkeSchablone
  393. ok=1
  394. End
  395. If ok=1 then leave
  396. End
  397. End
  398. When (pos("SYSTEM",upper(line.i))~=0|pos("RX",upper(line.i))~=0|pos("MACRO",upper(line.i))~=0) Then
  399. NOP
  400. Otherwise Type line.i
  401. End
  402. End
  403. If line~='' then type line
  404. NewParagraph
  405. prozent=Trunc(Stand/DLaenge*100)
  406. CALL TR_SETATTRIBUTE(window1,7,'TRAT_Value',prozent)
  407. END
  408. IF EOF('Guide') THEN leave
  409. End
  410. Call Close('Guide')
  411. MoveToLine 1 0
  412. If speed=2 then Call EndView
  413. say Time('E')
  414. CALL TR_SETATTRIBUTE(window1,7,'TRAT_Value',100)
  415. If MerkeSchablone~="" then;do
  416. ShowMessage 1 1 '"Die Importierung ist abgeschlossen."   "Es wurden vorläufig 'links' Verweise gekennzeichnet."   "Die endgültigen Verweise der Seitenzahlen müssen noch gesetzt werden..."   "Klick" "" ""'
  417. ShowMessage 1 1 '"Bevor Sie die Verweise endgültig setzen,"   "erstellen Sie bitte eine EINFACHE SEITENNUMMER"   "(Menü: Extras | Einfache Seitennumer...)."   "Klick" "" ""'
  418. End
  419. Else;do
  420. ShowMessage 1 1 '"Die Importierung ist abgeschlossen."   "Sie wünschten keine Verweise." ""   "Klick" "" ""'
  421. End
  422. Return
  423. Verweisen:
  424. address(FW)
  425. ShowMessage 1 1 '"Hiermit werden die Seitenverweise endgültig gesetzt."   "Dies sollten Sie nur dann tun, wenn Sie das Guide"   "Ihren Bedürfnissen vollständig angepaßt haben."   "Weiter" "Abbruch" ""'
  426. If result=2 then Return
  427. Status ParaPos
  428. Zurueck=result
  429. MoveToLine 1 0
  430. SetFind WRAP NO
  431. FIND "ð"
  432. If speed=2 then Call AnfView
  433. i=0
  434. Do ForEver
  435. Find "ð"
  436. If RC~=0 then Break
  437. i=i+1
  438. Status Page "Insert"
  439. Seite.i=Result
  440. Status ParaPos
  441. Anfpos=Word(result,1) Word(result,2)
  442. Cursor Right
  443. Kennung=0
  444. EXTRACT
  445. DO WHILE ((RESULT<":")&(RESULT>"/"))
  446. Kennung=Kennung*10+Result
  447. Cursor Right
  448. Extract
  449. END
  450. Status ParaPos
  451. EndPos=Result
  452. MoveToPara AnfPos
  453. ShiftDown
  454. MoveToPara EndPos
  455. ShiftUp
  456. Delete
  457. End
  458. Seite.0=i
  459. MoveToLine 1 0
  460. RedrawOff
  461. Do ForEver
  462. Find "¤"
  463. If RC~=0 then Break
  464. Status ParaPos
  465. Anfpos=Word(result,1) Word(result,2)
  466. Cursor Right
  467. Kennung=0
  468. EXTRACT
  469. DO WHILE ((RESULT<":")&(RESULT>"/"))
  470. Kennung=Kennung*10+Result
  471. Cursor Right
  472. Extract
  473. END
  474. Status ParaPos
  475. EndPos=Result
  476. MoveToPara AnfPos
  477. ShiftDown
  478. MoveToPara EndPos
  479. ShiftUp
  480. Type Seite.Kennung
  481. End
  482. MoveToPara Zurueck
  483. REDRAWON
  484. REDRAW
  485. If speed=2 then Call EndView
  486. ShowMessage 1 1 '"Die Verweise wurden gesetzt."   "Ihr Dokument ist fertig."   "Bitte schließen Sie das Fenster: Suchen"   "Klick" "" ""'
  487. Return
  488. AnfView:
  489. GetDisplayPrefs PageTabs SectionTabs
  490. Zungen=result
  491. DisplayPrefs PageTabs Off SectionTabs Off
  492. STATUS View
  493. Zoom=result
  494. View 20
  495. Return
  496. EndView:
  497. View Zoom
  498. DisplayPrefs PageTabs word(Zungen,1) SectionTabs word(Zungen,2)
  499. Return
  500. Voreinstellung:
  501. windowtags=WindowID(2),
  502. WindowPosition('TRWP_CENTERDISPLAY'),
  503. WindowFlags('TRWF_NOMINTEXTWIDTH'),
  504. PubScreenName('FinalWriterPubScreen'),
  505. WindowTitle('AmigaGuideImport-Voreinsteller'),
  506. 'HorizGroupAC SpaceS',
  507. 'VertGroupA SpaceS',
  508. CenteredTextH('Überschriften:'),
  509. 'SpaceS',
  510. 'HorizGroupAC',
  511. TextID('S_chriftart:',1),
  512. 'SpaceS',
  513. GetEntryButton(1),
  514. StringGadget(fond1,2),
  515. 'EndGroup',
  516. 'HorizGroupAC',
  517. TextID('Schrift_größe:',3),
  518. 'SpaceS',
  519. StringGadget(USize,3),
  520. 'EndGroup',
  521. 'Space',
  522. CenteredTextH('Mengentext:'),
  523. 'SpaceS',
  524. 'HorizGroupAC',
  525. TextID('Sc_hriftart:',4),
  526. 'SpaceS',
  527. GetEntryButton(4),
  528. StringGadget(fond2,5),
  529. 'EndGroup',
  530. 'HorizGroupAC',
  531. TextID('Schriftgr_öße:',6),
  532. 'SpaceS',
  533. StringGadget(TSize,6),
  534. 'EndGroup',
  535. 'Space',
  536. CenteredTextH('Allgemeines:'),
  537. 'SpaceS',
  538. 'HorizGroupAC',
  539. TextID('Link_format:',7),
  540. 'SpaceS',
  541. StringGadget(Schablone,7),
  542. 'EndGroup',
  543. 'HorizGroupAC',
  544. TextID('_@node schreiben:',10),
  545. 'SpaceS',
  546. CheckBox(10) 'TRAT_Value' node,
  547. 'Space',
  548. TextID('Seiten_umbruch:',9),
  549. 'SpaceS',
  550. CheckBox(9) 'TRAT_Value' Umbruch,
  551. 'EndGroup',
  552. 'SpaceS',
  553. 'HorizGroupAC',
  554. TextID('Gesch_windigkeit:',8),
  555. 'SpaceS',
  556. CycleGadget('speed',speed-1,8) 'TRAT_Flags TRCY_RIGHTLABELS',
  557. 'EndGroup',
  558. 'SpaceS',
  559. 'HorizSeparator',
  560. 'SpaceS',
  561. 'HorizGroupEC',
  562. Button('_Sichern',15),
  563. 'SpaceS',
  564. Button('_Anwenden',25),
  565. 'SpaceS',
  566. Button('Ab_bruch',20),
  567. 'EndGroup SpaceS',
  568. 'EndGroup SpaceS',
  569. 'EndGroup SpaceS',
  570. 'EndProject'
  571. app2=TR_CREATEAPP('TRCA_Name AGImport2')
  572. IF app2 ~='00000000'x THEN;DO
  573. window2=TR_OPENPROJECT(app2,windowtags)
  574. IF window2 ~='00000000'x THEN;DO
  575. ende2=0
  576. DO WHILE ~ende2
  577. CALL TR_WAIT(app2,'')
  578. DO WHILE TR_HANDLEMSG(app2,'event')
  579. IF event.trm_class='TRMS_CLOSEWINDOW' THEN ende2=1
  580. IF event.trm_class='TRMS_NEWVALUE' THEN;DO
  581. SELECT
  582. WHEN event.trm_id=8 THEN;Do
  583. oldspeed=speed
  584. speed=event.trm_data+1
  585. END
  586. WHEN event.trm_id=9 THEN;Do
  587. oldumbruch=Umbruch
  588. Umbruch=event.trm_data
  589. END
  590. WHEN event.trm_id=10 THEN;Do
  591. oldnode=node
  592. node=event.trm_data
  593. END
  594. OTHERWISE NOP
  595. END
  596. END
  597. IF event.trm_class='TRMS_ACTION' THEN;DO
  598. SELECT
  599. WHEN event.trm_id=1 THEN;Do
  600. oldUSchrift=USchrift;oldfond1=fond1
  601. USchrift=rtfilerequest("FWFonts/SWOLFonts",,"Font auswählen...",,"rt_pubscrname=FinalWriterPubScreen")
  602. if USchrift~='' then;do
  603. pos=max(index(USchrift,':'),lastpos('/',USchrift))
  604. If pos~=0 then fond1=Delstr(USchrift,1,pos)
  605. CALL TR_SETATTRIBUTE(window2,2,'TROB_String',fond1)
  606. End
  607. END
  608. WHEN event.trm_id=4 THEN;Do
  609. oldTSchrift=TSchrift;oldfond2=fond2
  610. TSchrift=rtfilerequest("FWFonts/SWOLFonts",,"Font auswählen...",,"rt_pubscrname=FinalWriterPubScreen")
  611. if TSchrift~='' then;do
  612. pos=max(index(TSchrift,':'),lastpos('/',TSchrift))
  613. If pos~=0 then fond2=Delstr(TSchrift,1,pos)
  614. CALL TR_SETATTRIBUTE(window2,5,'TROB_String',fond2)
  615. End
  616. END
  617. WHEN event.trm_id=25 THEN;Do
  618. Call Auslesen
  619. if okay=1 then Call Schreiben
  620. END
  621. WHEN event.trm_id=15 THEN;Do
  622. Call Auslesen
  623. If okay=1 then;do
  624. Call Open("prefs","s:FW_AGImport.prefs","W")
  625. Writeln('prefs',USchrift)
  626. Writeln('prefs',USize)
  627. Writeln('prefs',TSchrift)
  628. Writeln('prefs',TSize)
  629. Writeln('prefs',Schablone)
  630. Writeln('prefs',speed)
  631. Writeln('prefs',Umbruch)
  632. Writeln('prefs',node)
  633. Call Close("prefs")
  634. Call Schreiben
  635. End
  636. END
  637. WHEN event.trm_id=20 THEN;Do
  638. fond1=oldfond1;Umbruch=oldUmbruch;speed=oldspeed;node=oldnode
  639. fond2=oldfond2;USchrift=oldUSchrift;TSchrift=oldTSchrift
  640. ende2=1
  641. END
  642. OTHERWISE NOP
  643. END
  644. END
  645. END
  646. END
  647. CALL TR_CLOSEPROJECT(window2)
  648. END
  649. CALL TR_DELETEAPP(app2)
  650. END
  651. ELSE
  652. CALL quit('Kann das Fenster nicht öffnen',10)
  653. Return
  654. Auslesen:
  655. okay=0
  656. USize=TR_GETATTRIBUTE(window2,3,'TROB_String')
  657. If Datatype(USize,'W')=0 then;do
  658. x=rtezrequest("Die SCHRIFTGRÖßE bitte ganzzahlig angeben!","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
  659. Call TR_SendMessage(window2,3,'TROM_ACTIVATE',0)
  660. return
  661. end
  662. If USize<4 then USize=4
  663. If USize>360 then USize=360
  664. TSize=TR_GETATTRIBUTE(window2,6,'TROB_String')
  665. If Datatype(TSize,'W')=0 then;do
  666. x=rtezrequest("Die SCHRIFTGRÖßE bitte ganzzahlig angeben!","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
  667. Call TR_SendMessage(window2,6,'TROM_ACTIVATE',0)
  668. return
  669. end
  670. If TSize<4 then TSize=4
  671. If TSize>360 then TSize=360
  672. Schablone=TR_GETATTRIBUTE(window2,7,'TROB_String')
  673. okay=1
  674. Return
  675. Schreiben:
  676. If Umbruch=0 then UB="nein"
  677. else UB="ja"
  678. If node=0 then NO="nein"
  679. else NO="ja"
  680. o1="Überschrift: "||fond1||", Größe: "||USize
  681. o2="Mengentext: "||fond2||", Größe: "||TSize
  682. o3="Ausgabe: "||Schablone||" Geschwindigkeit: "||speed.speed
  683. o4="Seitenumbruch: "||UB||", @node: "||NO
  684. Call TR_SETATTRIBUTE(window1,5,'TRAT_TEXT',o1)
  685. Call TR_SETATTRIBUTE(window1,6,'TRAT_TEXT',o2)
  686. Call TR_SETATTRIBUTE(window1,7,'TRAT_TEXT',o3)
  687. Call TR_SETATTRIBUTE(window1,8,'TRAT_TEXT',o4)
  688. ende2=1
  689. Return
  690. SYNTAX:
  691. CALL quit('Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)||R||SOURCELINE(sigl)||R||'Bitte informieren Sie den Autor...',20)
  692. quit:
  693. PARSE ARG message,rcode
  694. IF app ~='00000000'x THEN;DO
  695. IF message ~='' THEN
  696. ret=rtezrequest(message,"_Okay","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")
  697. CALL TR_DELETEAPP(app)
  698. END
  699. ELSE
  700. IF message ~='' THEN;DO
  701. SAY message
  702. SAY
  703. OPTIONS PROMPT 'Bitte <RETURN> drücken'
  704. PULL taste
  705. END
  706. address command "flushtrx all"
  707. EXIT(rcode)